package com.copsoftware.mantenimientos.tipocalle.assembler;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;

import org.apache.struts.util.LabelValueBean;

import com.copsoftware.entity.GeoCalleImpl;
import com.copsoftware.entity.GeoTipoCalleImpl;
import com.copsoftware.hibernate.pojo.GeoCalle;
import com.copsoftware.mantenimientos.tipocalle.beans.BeanTipoCalle;

public class TipoCalleAssembler {

	public static List createListaTipoCalleForm(List listaTipoCalle) {
		
		List listaBNTipoCalle= new ArrayList();
		if (listaTipoCalle==null||listaTipoCalle.size()<1) return null; 
		for (Iterator iter = listaTipoCalle.iterator(); iter.hasNext();) {
			GeoTipoCalleImpl element = (GeoTipoCalleImpl) iter.next();
			BeanTipoCalle bnBeanTipoCalle = getBnTipoCalles(element);
			listaBNTipoCalle.add(bnBeanTipoCalle);
		}
		return listaBNTipoCalle;
	}

	private static BeanTipoCalle getBnTipoCalles(GeoTipoCalleImpl element) {
		BeanTipoCalle bnTipoCalle = new BeanTipoCalle();
		String value = String.valueOf(element.getCTipoCalle());
		bnTipoCalle.setValue(value);
		bnTipoCalle.setLabel(element.getXTipoCalle());
		bnTipoCalle.setListaCalles(getListaCalles(element.getGeoCalles()));
		return bnTipoCalle;
	}

	private static List getListaCalles(Set<GeoCalle> geoCalles) {
		List listaBNCalles = new ArrayList();
		if (geoCalles==null||geoCalles.size()<1) return listaBNCalles;
		for (Iterator iter = geoCalles.iterator(); iter.hasNext();) {
			GeoCalleImpl element = (GeoCalleImpl) iter.next();
			LabelValueBean lvBean = new LabelValueBean();
			lvBean.setLabel( element.getXCalle());
			String value = String.valueOf(element.getCTipoCalle());
			lvBean.setValue(value);
			listaBNCalles.add(lvBean);
		}
		return listaBNCalles;
	}
}
